<?php

/**
 * Ответ приложения в режиме CLI.
 *
 */
class Kernel_Response_Cli extends Kernel_Response_Abstract {

    /**
     * Конструктор
     *
     */
    public function __construct() {
        // :KLUDGE: morozov 17122007: кавардак какой-то с этими ответами…
        $this->write('');
    }

    /**
     * Устанавливает статус ответа. Пока предполагается, что статус выставляется
     * только в случае ошибки.
     *
     * @param   integer $code
     * @param   string  $text
     * @return  Kernel_Response_Abstract
     */
    public function status($code, $text) {
        $this->write($code . ' - ' . $text);
        //fwrite(STDERR, $code . ' - ' . $text);
        return $this;
    }

    /**
     * Выводит в ответ ошибку, описанную указанным исключением.
     *
     * @param   Kernel_Filter_Exception $e
     */
    public function error($e) {
        parent::error($e)->write($e->getMessage());
    }

    /**
     * Отображает указанное сообщение.
     *
     * @param   Kernel_Response_Message $message
     */
    protected function _message(Kernel_Response_Message $message) {
        trigger_error('Not implemented', E_USER_ERROR);
    }

    /**
     * Отправляет заголовок ответа. Какие заголовки в CLI?
     *
     * @param   string  $contents
     */
    protected function _header($contents) {
        trigger_error('Headers are not allowed in CLI-mode', E_USER_ERROR);
    }
}
